package day_2022_7_to_8.day48;

import java.util.Stack;

/**
 * 1381. 设计一个支持增量操作的栈
 * @author haomin
 * @date 2022/07/31 20:57
 **/
public class Day16_2_Num1381_CustomStack {
    class CustomStack {
        Stack<Integer> stack = new Stack<>();
        int size;
        public CustomStack(int maxSize) {
            size = maxSize;
        }

        public void push(int x) {
            if(size == stack.size()){
                return;
            }
            stack.add(x);
        }

        public int pop() {
            if(stack.isEmpty()){
                return -1;
            }
            return stack.pop();
        }

        public void increment(int k, int val) {
            for (int i = 0; i < Math.min(k,stack.size()); i++) {
                stack.set(i,stack.get(i)+val);
            }
        }
    }

    // 方法二：数组
//    class CustomStack2 {
//        int[] data;
//        int index;
//        public CustomStack(int maxSize) {
//            data = new int[maxSize];
//            index = -1;
//        }
//
//        public void push(int x) {
//            if(index == data.length-1){
//                return;
//            }
//            data[++index] = x;
//        }
//
//        public int pop() {
//            if(index == -1) return -1;
//            else return data[index--];
//        }
//
//        public void increment(int k, int val) {
//            for(int i = 0;i < Math.min(k,index+1);i++){
//                data[i] += val;
//            }
//        }
//    }
}
